
--  crear base   CbaPresta

USE [CbaPresta]
GO

/****** Object:  Table [dbo].[Solicitudes]    Script Date: 08/05/2013 20:57:19 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Solicitudes](
	[Id] [int] NOT NULL,
	[TDoc] [int] NOT NULL,
	[NDoc] [int] NOT NULL,
	[Nombre] [varchar](50) NULL,
	[Apellido] [varchar](50) NULL,
	[FechaNac] [int] NULL,
	[Tel] [varchar](15) NULL,
	[Mail] [varchar](100) NULL,
	[MontoSol] [decimal](18, 2) NULL,
	[Comen] [varchar](250) NULL,
	[Destino] [varchar](250) NULL,
	[Estado] [int] NULL,
	[FechaEstado] [int] NULL,
	[FechaIng] [int] NULL,
	[Observa] [varchar](250) NULL,
	[Otorgante] [int] NULL,
	[Comi] [decimal](18, 2) NULL,
	[FechaComi] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

--   Indices   

--  crear   idx1  por Id 
--  crear   idx2  por  TDoc  NDoc

---------------------------------------------------------------

/****** Object:  StoredProcedure [dbo].[ProximoID]    Script Date: 08/05/2013 21:03:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[ProximoID]
(
@tabla varchar(100),
@campo varchar(100)
)
as

declare @SQLString nvarchar(100)
set @SQLString = 'SELECT isnull(max('+@campo+'),0)+1 as ID_'+@campo+' FROM '+@tabla 

exec sp_executesql @SQLString

-- exec [dbo].[ProximoID] 'Solicitudes','Id'

-------------------------------------------------------------------

USE [CbaPresta]
GO
/****** Object:  StoredProcedure [dbo].[Solicitudes_Insert]    Script Date: 08/05/2013 21:07:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--------------------------------------------------------------------------------------------
-- Autor:			WeCo/CBendayan
-- Creacion:		05/08/2013
-- Descripcion: 	INSERT en tabla Solcitudes
--------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[Solicitudes_Insert]

	-- Lista de Parmetros
		@Id				float,
        @TDoc           int,
        @NDoc           float,
        @Nombre			nvarchar(50),
        @Apellido		nvarchar(50),
        @FechaNac		float,
        @Tel			nvarchar(15),
        @Mail			nvarchar(100),
        @MontoSol		decimal(16,2),
        @Comen			nvarchar(100),
        @Destino		nvarchar(250),
        @Estado			int,
        @FechaEstado	float,
        @FechaIng		float,
        @Observa		nvarchar(250),
        @Otorgante		int,
        @Comi			decimal(16,2),
        @FechaComi		float

AS
BEGIN
	SET NOCOUNT ON

	SET DATEFORMAT DMY

	INSERT INTO Solicitudes (
		Id,
        TDoc,
        NDoc,
        Nombre,
        Apellido,
        FechaNac,
        Tel,
        Mail,
        MontoSol,
        Comen,
        Destino,
        Estado,
        FechaEstado,
        FechaIng,
        Observa,
        Otorgante,
        Comi,
        FechaComi

	) VALUES (
		@Id,
        @TDoc,
        @NDoc,
        @Nombre,
        @Apellido,
        @FechaNac,
        @Tel,
        @Mail,
        @MontoSol,
        @Comen,
        @Destino,
        @Estado,
        @FechaEstado,
        @FechaIng,
        @Observa,
        @Otorgante,
        @Comi,
        @FechaComi
	)
END


----------------------------------------------------

USE [CbaPresta]
GO
/****** Object:  StoredProcedure [dbo].[Solicitudes_GetOne]    Script Date: 08/05/2013 21:23:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--------------------------------------------------------------------------------------------
-- Autor:			WeCo\cbendayan
-- Creacion:		05/08/2013
-- Descripcion: 	GETONE en tabla Solicitudes
--------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[Solicitudes_GetOne]
		@Id	float
AS
BEGIN
	SET NOCOUNT ON
	SET DATEFORMAT DMY;
SELECT
		Id, 
		TDoc,
        NDoc,
        Nombre,
        Apellido,
        FechaNac,
        Tel,
        Mail,
        MontoSol,
        Comen,
        Destino,
        Estado,
        FechaEstado,
        FechaIng,
        Observa,
        Otorgante,
        Comi,
        FechaComi
	FROM Solicitudes
	WHERE 
			Id	= @Id
END

-- exec Solicitudes_GetOne 1

----------------------------------------------------------------------

USE [CbaPresta]
GO
/****** Object:  StoredProcedure [dbo].[Solicitudes_Update]    Script Date: 05/08/2013 21:28:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--------------------------------------------------------------------------------------------
-- Autor:			WeCo/CBendayan
-- Creacion:		05/08/2013
-- Descripcion: 	UPDATE en tabla Solicitures
--------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[Solicitudes_Update]

	-- Lista de Parmetros
		@Id				float,
        @TDoc           int,
        @NDoc           float,
        @Nombre			nvarchar(50),
        @Apellido		nvarchar(50),
        @FechaNac		float,
        @Tel			nvarchar(15),
        @Mail			nvarchar(100),
        @MontoSol		decimal(16,2),
        @Comen			nvarchar(100),
        @Destino		nvarchar(250),
        @Estado			int,
        @FechaEstado	float,
        @FechaIng		float,
        @Observa		nvarchar(250),
        @Otorgante		int,
        @Comi			decimal(16,2),
        @FechaComi		float

AS
UPDATE Solicitudes 
	SET 
        TDoc		= @TDoc,
        NDoc		= @NDoc,
        Nombre		= @Nombre,
        Apellido	= @Apellido,
        FechaNac	= @FechaNac,
        Tel			= @Tel,
        Mail		= @Mail,
        MontoSol	= @MontoSol,
        Comen		= @Comen,
        Destino		= @Destino,
        Estado		= @Estado,
        FechaEstado	= @FechaEstado,
        FechaIng	= @FechaIng,
        Observa		= @Observa,
        Otorgante	= @Otorgante,
        Comi		= @Comi,
        FechaComi	= @FechaComi
		
WHERE
		Id	= @Id



----------------------------------------------------------------------------



USE [CbaPresta]
GO
/****** Object:  StoredProcedure [dbo].[Solicitudes_Search]    Script Date: 05/08/2013 21:37:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--------------------------------------------------------------------------------------------
-- Autor:			WeCo\cbendayan
-- Creacion:		05/08/2013
-- Descripcion: 	Search en tabla Solicitudes
-------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[Solicitudes_Search]
	-- Lista de Parmetros

	@Estado				int = null,
	@FechaEstadoD		float = null,
	@FechaEstadoH		float = null 

AS
BEGIN
	SET NOCOUNT ON
	SET DATEFORMAT DMY

	----------------------------------------
	-- Definimos Variables
	----------------------------------------
	DECLARE @sql        nvarchar(4000)
	DECLARE @parametros nvarchar(4000)

	SET @sql = N'	SELECT 
					Id, 
					TDoc,
					NDoc,
					Nombre,
					Apellido,
					FechaNac,
					Tel,
					Mail,
					MontoSol,
					Comen,
					Destino,
					Estado,
					FechaEstado,
					FechaIng,
					Observa,
					Otorgante,
					Comi,
					FechaComi
					FROM Solicitudes WITH (NOLOCK) WHERE 1 = 1 '

	-- @Estado = TYPE int

	IF (@Estado IS NOT NULL)
	BEGIN			
			SET @sql = @sql + ' AND Estado = @Estado '
	END

	-- FechaEstado  float 
	IF (@FechaEstadoD IS NOT NULL)	
	BEGIN
			SET @sql = @sql + ' AND FechaEstado !< @FechaEstadoD '
	END

	-- FechaEstado  float 
	IF (@FechaEstadoH IS NOT NULL)	
	BEGIN
			SET @sql = @sql + ' AND FechaEstado !> @FechaEstadoH '
	END

	BEGIN
			SET @sql = @sql + ' ORDER BY FechaEstado, Id '
	END
	
	SELECT @parametros = '@Estado int, @FechaEstadoD float, @FechaEstadoH float '

	EXEC sp_executesql @sql, @parametros, @Estado, @FechaEstadoD, @FechaEstadoH 	
END

-- exec Solicitudes_Search NULL,NULL,NULL  

--  POR FIN   jaja
